<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<html lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="Content-Language" content="zh-CN"><link href="stylesheet.css" media="all" rel="stylesheet" type="text/css">
<title>锁管理</title>
<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script>
</head><body class="SECT1">
<div>
<table summary="Header navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><th colspan="5" align="center" valign="bottom">PostgreSQL 8.2.3 中文文档</th></tr>
<tr><td width="10%" align="left" valign="top"><a href="runtime-config-client.html" accesskey="P">后退</a></td><td width="10%" align="left" valign="top"><a href="runtime-config.html">快退</a></td><td width="60%" align="center" valign="bottom">章17. 服务器配置</td><td width="10%" align="right" valign="top"><a href="runtime-config.html">快进</a></td><td width="10%" align="right" valign="top"><a href="runtime-config-compatible.html" accesskey="N">前进</a></td></tr>
</table>
<hr align="LEFT" width="100%"></div>
<div class="SECT1"><h1 class="SECT1"><a name="RUNTIME-CONFIG-LOCKS">17.11. 锁管理</a></h1>
<div class="VARIABLELIST">
<dl>
<dt><a name="GUC-DEADLOCK-TIMEOUT"></a><tt class="VARNAME">deadlock_timeout</tt> (<tt class="TYPE">integer</tt>)</dt>
<dd><p>以毫秒计的时间，用于设置在检查是否存在死锁条件之前等待的时间。检查是否存在死锁条件是一个缓慢的过程，因此服务器不会在每次等待锁的时候都运行这个过程。我们(乐观地)假设在生产应用中的死锁是不常出现的，因此我们在开始询问是否可以解锁之前只等待一个相对较短的时间。增加这个值就减少了浪费在无用的死锁检查上的时间，但是减慢了报告真正死锁错误的速度。缺省是 1000(1秒)，这可能是你能够耐心等待的最短时间。在一个重负载的服务器上，你可能需要增大它。这个值的典型设置应该超过你的事务持续时间，这样就可以减少在锁释放之前就开始死锁检查的问题。</p></dd>
<dt><a name="GUC-MAX-LOCKS-PER-TRANSACTION"></a><tt class="VARNAME">max_locks_per_transaction</tt> (<tt class="TYPE">integer</tt>)</dt>
<dd><p>共享的锁表的大小是以假设任意时刻最多只有 <tt class="VARNAME">max_locks_per_transaction</tt>*(<a href="runtime-config-connection.html#GUC-MAX-CONNECTIONS">max_connections</a>+<a href="runtime-config-resource.html#GUC-MAX-PREPARED-TRANSACTIONS">max_prepared_transactions</a>) 个独立的对象需要被锁住为基础进行计算的。所以，这个参数的名字可能有些让人糊涂：这不是单个事务可以使用的锁数目的硬限制，而是一个平均值。缺省值 64 ，已经经历史证明是足够的了，不过如果你的客户可能在一个事务里面修改很多不同的表，那么你就可能需要提高这个数值。这个值只能在服务器启动的时候设置。</p>
<p>增大这个参数可能导致 PostgreSQL 要求更多的 <span class="SYSTEMITEM">System V</span> 共享内存，可能超过操作系统的缺省配置。必要时，参阅<a href="kernel-resources.html#SYSVIPC">节16.4.1</a>获取如何调节这些参数的信息。</p></dd>
</dl>
</div>
</div>
<div>
<hr align="LEFT" width="100%">
<table summary="Footer navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td width="33%" align="left" valign="top"><a href="runtime-config-client.html" accesskey="P">后退</a></td><td width="34%" align="center" valign="top"><a href="index.html" accesskey="H">首页</a></td><td width="33%" align="right" valign="top"><a href="runtime-config-compatible.html" accesskey="N">前进</a></td></tr>
<tr><td width="33%" align="left" valign="top">客户端连接缺省</td><td width="34%" align="center" valign="top"><a href="runtime-config.html" accesskey="U">上一级</a></td><td width="33%" align="right" valign="top">版本和平台兼容性</td></tr>
</table>
</div>
</body></html>